/*
 * DataOutput.java
 *
 * Created on 22 de junio de 2004, 12:08
 */

package _04_DataStream;
import java.io.*;

public class DataOutput {
    
	DataOutputStream data;
	final String ARCHIVO = "Datos.dat";
                
	DataOutput() {
            if (abrirArchivo()) {
                    grabar();
                    cerrar();
            }
	}
	
	boolean abrirArchivo() {
            File f = new File(ARCHIVO);

            try {
                    data = new DataOutputStream( 
                               new FileOutputStream(f) );
                    System.out.println("abre el DataOutputStream");
                    return true;
            } catch (IOException e) {
                    System.out.println(e.getMessage());
                    return false;
            }
	}
	
	void grabar() {
            try {
                    data.writeInt(1);
                    data.writeUTF("Cadena I");
                    data.writeDouble(20.35);
                    data.writeBoolean(true);
                    System.out.print(String.valueOf(data.size()) + " bytes grabados\n");
                    
                    data.writeInt(2);
                    data.writeUTF("Cadena II");
                    data.writeDouble(.5);
                    data.writeBoolean(false);
                    System.out.print(String.valueOf(data.size()) + " bytes grabados\n");
                    
                    data.writeInt(3);
                    data.writeUTF("Cadena III");
                    data.writeDouble(400);
                    data.writeBoolean(true);
                    System.out.print(String.valueOf(data.size()) + " bytes grabados\n");

            } catch (IOException e) {
                    System.out.println(e.getMessage());
            }
	}
	
	void cerrar() {
            try {
                    data.flush();
                    data.close();
                    System.out.println("cierra el DataOutputStream");
            } catch (IOException e) {
                    System.out.println(e.getMessage());
            }		
	}

        public static void main(String[] args) {
            new DataOutput();
	}
}
